一種資料型別,用來儲存文字、顯示文字、進行文字處理
// 單引號
const str1 = 'IThome';
// 雙引號
const str2 = "IThome";
console.log(str1); // IThome
console.log(str2); // IThome
const str = "IThome";
console.log(str.length); // 6
charAt()
:指定索引位置字元charCodeAt()
:指定索引位置字元Unicode碼點
let str = "Hello world";
let char = str.charAt(0);
let codePoint = str.charCodeAt(0);
console.log(char); // "H"
console.log(codePoint); // 72
concat()
:兩個或多個字串連接起來
const str1 = "Hello";
const str2 = "World";
console.log(str1 + str2); // HelloWorld
indexOf()
:找出指定字元或在字串中位置
let str = "Hello world";
let subStr = "world";
let index = str.indexOf(subStr);
console.log(index); // 7
lastIndexOf()
:返回指定子字符串在字符串中最後一次出現位置
let str = "Hello world world";
let subStr = "world";
let index = str.lastIndexOf(subStr);
console.log(index); // 12
replace()
:將字串指定字元或字串替換成另一個字元或字串
var str = "Hello world";
// "world" 替換 "everyone"
var Str1 = str.replace("world", "everyone");
console.log(Str1); // "Hello everyone"
slice()
:擷取字串一部分
var str = "Hello world";
// 取字串 "Hello"
var Str1 = str.slice(0, 5);
console.log(Str1); // "Hello"
split()
:字串分割成字串陣列
let str = "Hello world";
// 使用分隔符 ", " 字符串分割成一個或多個子字符串
let arr = str.split(", ");
console.log(arr); // ["Hello", "world!"]
substr()
:擷取字串一部分
substr(start [, length])
substring()
:擷取字串一部分
substring(start, end)
const str = "Hello world";
// substr()
const substr1 = str.substr(2); // "lo world"
const substr2 = str.substr(2, 5); // "lo wo"
// substring()
const substring1 = str.substring(2, 8); // "lo worl"
const substring2 = str.substring(2); // "lo world"
toLowerCase()
:字串轉換成小寫toUpperCase()
:字串轉換成大寫
var str = "Hello world";
// 轉換小寫
var newStr = str.toLowerCase();
console.log(newStr); // "hello world"
// 轉換大寫
var newStr2 = str.toUpperCase();
console.log(newStr2); // "HELLO WORLD"
與其他字串和數字進行運算
const str1 = "Hello";
const str2 = "World";
console.log(str1 + str2); // HelloWorld
字串與數字運算:
JavaScript
const str = "1234";
const num = 1010;
console.log(str + num); // 12341010
是一種獨特且不可變資料型態,可以被用作對象屬性名稱,也可以避免與其他屬性名稱衝突,防止屬性名稱被意外覆蓋
對象屬性名稱
函式參數
變數名稱
或函式名稱
字串或數字
Symbol()函數
函數返回一個 新的Symbol值
Symbol.for()函數
函數返回一個 已存在Symbol值
Symbol值不存在
,會創建一個 新的Symbol值
// 創建一個新Symbol值
const mySymbol = Symbol();
// 用Symbol值為對象屬性名稱
const obj = {
[mySymbol]: 'This is a Symbol property.'
};
// 取得Symbol屬性值
const value = obj[mySymbol];
// 將Symbol值為函式參數
function foo(symbol) {
console.log(symbol); // Symbol()
}
foo(mySymbol);
無法被外部訪問
const obj = {
[Symbol('id')]: 12345,
name: 'Cindy Huang'
};
console.log(obj.id); // 12345
console.log(obj.name); // Cindy Huang
// 嘗試訪問私有屬性
obj.id = 45678; // 錯誤
一種安全和可預測方式表示有限的值集合
const weekdays = {
MONDAY: Symbol('monday'),
TUESDAY: Symbol('tuesday'),
WEDNESDAY: Symbol('wednesday'),
THURSDAY: Symbol('thursday'),
FRIDAY: Symbol('friday'),
SATURDAY: Symbol('saturday'),
SUNDAY: Symbol('sunday')
};
function isWeekend(day) {
return day === weekdays.SATURDAY || day === weekdays.SUNDAY;
}
console.log(isWeekend(weekdays.MONDAY)); // false
console.log(isWeekend(weekdays.SATURDAY)); // true
一種更靈活和可擴展方式操作
JavaScript代碼
const hasProperty = Symbol('hasProperty');
function has(obj, property) {
return obj[hasProperty](property);
}
const obj = {
name: 'Cindy Huang'
};
console.log(has(obj, 'name')); // true
console.log(has(obj, 'age')); // false